package reflect;

import reflect.annotations.AutoRunMethod;

import java.lang.reflect.Method;

/**
 * 访问注解参数值
 */
public class ReflectDemo12 {
    public static void main(String[] args) throws Exception {
        //需求：获取Person类上sayHello方法的注解@AutoRunMethod中value参数值
        //1获取Person类对象
        Class cls = Class.forName("reflect.Person");
        //2.获取Person类上sayHello方法的方法对象
        Method method = cls.getMethod("sayHello");
        //3.判断该方法是否被注解标注了
        if (method.isAnnotationPresent(AutoRunMethod.class)){
            /*
              4.获取方法上的注解
              所有的反射对象都支持方法：
              Annotation getAnnotation(Class cls)
               获取当前反射对象表示的内容上一个特定的注解
             */
            AutoRunMethod arm = method.getAnnotation(AutoRunMethod.class);
            //获取注解上value参数值
            int value = arm.value();
            System.out.println("参数value的值为:"+value);
        }
    }
}
